/*
 * Copyright (c) 2021，上海福宇龙汽车科技有限公司
 * All rights reserved.
 * 文件名称: ver_comp.h
 * 摘要:
 * 当前版本: V1.0.0 周伟
 * Date: 2024-05-29
 * 历史版本: Vx.x.x，编写者/修改者，修改时间，修改内容（重大发布时，总结重点变更内容）
 */
#ifndef _VER_COMP_H
#define _VER_COMP_H

#include "rte.h"
#define HARD_LEN 3
#define SOFT_LEN 4
#define SWIPE_LEN 1
typedef enum
{
    EHBL_VER,       /*方向锁*/
    NFCRED_VER,     /*读卡器*/
    NFCCTRL_VER,    /*控制器*/
    VER_MAX
} VER_NUM;   /*修改类别*/

typedef enum
{
    NO_W_TASK,/*无写任务*/
    W_TASK    /*有写任务*/
} w_state;   /*有无写版本号任务*/

typedef enum
{
    HARDWARE_VER, /*硬件版本阶段*/
    SOFTWARE_VER,  /*软件版本阶段*/
    SWIPE_NUM_VER,   /*刷卡次数*/
    VER_MX
} Com_softhard_VER;  /*通信测试硬件软件版本阶段*/

typedef union
{
    struct
    {
        VER_NUM product :8;/*产品*/
        Com_softhard_VER hd_sw :8;/*软件硬件*/
        uint16_t reserve:16;/*保留*/
        uint8_t data[4];/*版本号数据*/
    } sig;
    uint8_t rxdata[8];
} rxinfo;

typedef struct
{
    w_state rxflag;
    rxinfo Ver_rxinfo;
}Ver_canrx_info;/*CAN中断接收数据结构体*/

void ver_comp_cancbk(uint8_t len,uint8_t data[]);
void ver_comp_init(void);
Rt_result Version_number_comparison(NFCTestStatus Status,Byte0Status St,LCD_TestStatus data_type,uint8_t Version_data[]);
void ver_comp_main(void);
uint8_t Rt_Swipe_Len(void);
bool Rt_eol_flag(void);
void Set_eol_flag(bool flag);
#endif
